import { parseHTML } from "./parse";
import { generate } from "./generate";

export function compileToFunctions(template) {
  // log(template);
  let ast = parseHTML(template); // 解析完后得到的就是 ast
  log("ast----", ast);

  /*  将 ast 转为 render 代码
   * _c('div',{id:"app",style:{"color":" green"}},_c('div',{style:{"color":" #ff0000"}},_v("你好"+_s(age)+"hello"+_s(name)+"world")),_c('div',undefined,_v(_s(age))))
   *
   * */
  let code = generate(ast);
  // log("code----", code);
  // eval 执行时作用域不够干净，并且不能传参
  let render = `with(this){return ${code}}`;
  return new Function(render);
}
